A cloud computing data center, serving as a large-scale server cluster, includes a great number of physical servers with different specification configurations, and through a virtualization technology, each of the physical servers may virtualize multiple virtual machines to deploy and schedule resources for users. Generally, a main procedure of a scheduling system of the cloud computing data center is as shown in FIG. 1, which is as follows: A user initiates a request through the Internet; a super scheduling center submits the request to a proper data center according to identity features of the user and features of the requested service, and then a management program of the data center submits the request to a certain scheduling domain, a certain scheduling algorithm is executed in the scheduling domain to request allocation of the resources; the scheduling center executes a background optimization operation at the same time, and sorts the resources of different data centers according to optimization objective functions, idle information and configuration information for use by a subsequent user; a scheduling task is executed after requesting for allocating the resources, the resources are deployed and the user begins to use the resources. The scheduling domain includes a group of physical machines which are grouped based on some policies or rules, the policies or rules can include business reasons, technical reasons or others.
The cloud computing data center dynamically and automatically allocate the virtual machines to the users according to specification requirements of the users. However, the specification requirements of the users may be different from the specification configurations of all the physical servers in the data center, and if a simple allocation scheduling method such as a round-robin scheduling method, a weighted round-robin scheduling method, a minimum load (or least-connection scheduling) priority method, a weighted least-connection scheduling priority method, or a hash method is adopted, it is difficult to achieve load balance of the physical servers.
According to the round-robin scheduling method, a rotation period is preset to sequentially allocate the virtual machines required by the users to different physical servers, and a new rotation period begins after the previous rotation period is over. It can be seen that, according to the method, the problem of the load balance is not taken into consideration when the virtual machines are allocated.
According to the weighted round-robin scheduling method, weights are preset for the physical servers, and during the procedure of allocating the virtual machines in load balance, the physical server is rotationally selected. If the weight of the selected physical server is 0, the server is skipped and the next server is selected; if the weight of the selected physical server is not 0, the server is selected and 1 is subtracted from the weight of the server. Subsequent selection is performed in rotation on the basis of the previous selection, and therefore, the number of serving times obtained by the physical server with a high weight is in direct proportion with the weight of the physical server with the high weight.
According to the minimum load (or the least-connection scheduling) priority method, during each time of allocating the virtual machines, load conditions of all the physical servers in the current period of time are first checked, and then a physical server with a minimum load in the current period of time is selected to allocated the virtual machines. However, according to the method, the balance is implemented through properly and evenly allocating the number of accesses instead of through scheduling and allocating the virtual machines, which cannot implement load balance of physical resources in the data center.
The weighted least-connection scheduling method is similar to the weighting round-robin scheduling method, where different weights are set for the physical servers with different specification configurations, and the virtual machines are selected and allocated according to the weights set for the servers.
According to the hash method, a hash function is preset to map the virtual machines required by the users to the corresponding physical servers, and an execution speed is fast. However, it is impossible to design a hash function that meets the specification requirements of the users, satisfies the specification configurations of different physical servers, and can solve the problem of load imbalance at the same time.
During the procedure of implementing the present disclosure, the inventor finds that the prior art at least has the following problems: the foregoing simple allocation and scheduling methods cannot solve the problem of load imbalance of the physical servers, where the load imbalance of the physical servers is caused by the inconsistency of the specification requirements of the users and the specification configurations of the physical servers.